nagios 监控客户端

        在客户端机器阿航安装 epel 扩展源

1
yum install -y epel-release

        安装 nagios 以及 nagios-plugins

1
yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe

        编辑配置文件

1
vim /etc/nagios/nrpe.cfg

        找到 “allowed_hosts=127.0.0.1” 改为 “allowed_hosts=127.0.0.1,192.168.0.62 ” 后面的 ip 为服务端 ip ; 找到 “dont_blame_nrpe=0” 改为 “dont_blam_nrpe=1”

        修改为

        修改为

        启动客户端

1
/etc/init.d/nrpe start

        客户端配置好以后,在到服务端继续配置。客户端 ip 为 192.168.0.98,下面定义子配置文件。(以下操作在服务端上完成)

1
2
[root@nagios ~]# cd /etc/nagios/conf.d/
[root@nagios conf.d]# vim /192.168.0.98.cfg

        增加配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
define host{
use linux-server
host_name 192.168.0.98
alias 0.98
address 192.168.0.98
}
define service{
use generic-service
host_name 192.168.0.98
service_description check_ping
check_command check_ping!100.0,20%!200.0,50%
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 192.168.0.98
service_description check_ssh
check_command check_ssh
max_check_attempts 5
normal_check_interval 1
notification_interval 60
}
define service{
use generic-service
host_name 192.168.0.98
service_description check_http
check_command check_http
max_check_attempts 5
normal_check_interval 1
}

        说明:

  • “max_check_attempts 5” :表示当nagios检测到问题时,一共尝试检测5次都有问题才会告警,如果该数值为1,那么检测到问题立即告警
  • “normal_check_interval 1”:表示重新检测的时间间隔,单位是分钟,默认是3分钟
  • “notification_interval 60”:表示在服务出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟。如果你认为,所有的事件只需要一次通知就够了,可以把这里的选项设为0。

        以上服务不依赖于客户端 nrpe 服务,可以想象,在子机电脑上可以使用 ping 或者 telnet 探测远程任何一台机器是否存活、是否开启某个端口或服务。而当想要检测客户端上的某个具体服务的情况时,就需要借助于 nrpe 了,比如想知道客户端机器的负载或磁盘使用情况。

        编辑完成配置文件后,检测配置是否有错

1
[root@nagios conf.d]# nagios -v /etc/nagios/nagios.cfg

        再服务端重启一下 nagios 服务

1
[root@nagios conf.d]# service nagios restart

        然后在浏览器里访问 nagios ,刷新会发现多出来一台主机,并且多出来三个服务。只不过这三个服务并不是我们想要的,想要监控系统负载,监控磁盘使用率等服务,这时候就要使用 nrpe 服务了。继续在服务端上添加服务。

1
[root@nagios ~]# vim /etc/nagios/objects/commands.cfg

        增加

1
2
3
4
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

        然后继续编辑

1
[root@nagios conf.d]# vim 192.168.0.98.cfg

        增加内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
define service{
use generic-service
host_name 192.168.0.98
service_description check_load
check_command check_nrpe!check_load
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 192.168.0.98
service_description check_disk_sda1
check_command check_nrpe!check_sda1
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 192.168.0.98
service_description check_disk_sda3
check_command check_nrpe!check_sda3
max_check_attempts 5
normal_check_interval 1
}

        说明:“check_nrpe!check_load” 这里的 check_nrpe 就是在 commands.cfg 刚刚定义的,check_load 是远程主机上的一个检测脚本。

        在远程主机上编辑 nrpe.cfg 配置文件

1
[root@nagios conf.d]# vim /etc/nagios/nrpe.cfg

        搜索 check_load ,这行就是在服务器上要执行的脚本了。然后把 check_hda1 更改一下:/dev/hds1 改为 ,/dev/sda1 。

        修改为

        再加一行

        客户端上重启一下 nrpe 服务

1
[root@lnmp ~]# service nrpe restart

        服务端也重启下 nagios 服务

1
[root@nagios conf.d]# service nagios restart

        再到浏览器刷新,会看到又多出来三个服务

        稍微等一会就可以查看到具体的状态了。